package com.ipartek.pruebas.pruebas2;

import com.ipartek.pruebas.bean.CursoP5;
import com.ipartek.pruebas.bean.AlumnoP5;
import com.ipartek.pruebas.bean.AulaP5;
import com.ipartek.pruebas.utiles.Util;
import java.util.Scanner //Importa la clase Scanner

;

//import ipt.vo.Dado;

/**
 * Clase creada para probar, por ahora solo se esta cogiendo del bean, lo que es
 * alumnoP5 Realizamos pruebas sobre recogida de otras clases Ahora estamos
 * pidiendo datos por pantalla y recogiendolos, ademas del uso en edad de un try
 * 
 * @author practicas5
 * 
 */
public class PruebaP5 {

	private static Scanner teclado;
	static final int MIN_ALUMNO_AULA = 0;
	static final int MAX_ALUMNO_AULA = 20;

	/**
	 * @param args
	 *            no se pasa
	 * @param AlumnoP5 
	 */
	public static void main(String[] args) {

		String temp = "";

		AlumnoP5 a1 = new AlumnoP5();
		AlumnoP5 a2 = new AlumnoP5("David", "Perez", "Ruiz", 32, 78910794,
				"davidperezruiz1980@yahoo.es");

		a2.setEdad(333);

		AulaP5 au1 = new AulaP5();
		AulaP5 au2 = new AulaP5("P1", "caraca", 1, 20);
		CursoP5 c1 = new CursoP5();
		CursoP5 c2 = new CursoP5("UFS1289", "JAVCA", 200, 2000);
		System.out.println(a1.toString());
		System.out.println(a2.toString());

		System.out.println(au1.toString());
		System.out.println(au2.toString());

		System.out.println(c1.toString());
		System.out.println(c2.toString());

		// Es un ejemplo trayendo de import ipt.vo.Dado
		// Dado d = new Dado();//
		// d.pintarAula(2); // instancia de la clase
		//Dado.pintarAula(3); // metodo de la clase

		// prueba de como se crea la instancia para recoger en pantalla

		// String nombre;
		// int horas;
		// double pagoPorHora, pagoTotal;

		// Scanner teclado = new Scanner(System.in);
		// System.out.println("Como te llamas?");
		// nombre = teclado.nextLine();
		// System.out.println("Cuantas horas trabajaste esta semana?");
		// horas = teclado.nextInt();
		// System.out.println("Hola " + nombre);
		// System.out.println("Tu horas trabajasdas " + horas );

		// voy a realizar el ejercicio pidiendo los datos del Alumno

		// EMPIEZO CON LA PARTE DEL ALUMNADO
		// Variables que voy a utilizar
		String nombre, apellido1, apellido2, email = "";
		int edad = 0, dni = 0, numAlumno = 1;
		boolean flag;// reutilizable para las repeticiones que deseo marcar
						// cuando salgo
		teclado = new Scanner(System.in);

		flag = false;//inicializo la bandera
		// Esta repeticion es para pedir el numero de alumnos
		// Comprobara si es un numero entero ademas de un minimo o maximo
		while (flag == false) {
			try {
				System.out.println("Introduzca numero de alumnos");
				numAlumno = teclado.nextInt();
				// Esta repeticion es para que el numero este localizado entre
				// el minimo de alumno por aula y el maximo alumno por aula y sea numero
				while (numAlumno < MIN_ALUMNO_AULA
						|| numAlumno > MAX_ALUMNO_AULA) {
					System.out
							.println("Error, o no tiene alumnos siendo "
									+ MIN_ALUMNO_AULA + " o menor a "
									+ MAX_ALUMNO_AULA);
					numAlumno = teclado.nextInt();
				}
				flag = true;
			} catch (Exception e) {
				System.out.println("Error, Introduzca un numero de alumno");
				temp = teclado.nextLine();
			}
		}
		AlumnoP5[] a3= new AlumnoP5[numAlumno];
		// Esta repeticion for es para pedir los datos por cada alumno, gracias
		// al numero de alumno que pedimos
		for (int i = 0; i < numAlumno; i++) {
			// Gracias a las 2 lineas siguientes no me casca
			System.out.print("");
			temp = teclado.nextLine();
			// Pido el email
			System.out.println("Introduzca el email del alumno");
			email = teclado.nextLine();
			// valido email
//			while (ipt.util.Util.validarEmail(email) == false) {
//				System.out.println("ERROR, Introduzca bien el email");
//				email = teclado.nextLine();
//			}
			// pido el nombre
			System.out.println("Introduzca el nombre del alumno");
			nombre = teclado.nextLine();

			// Valido el nombre del alumno
//			while (Util.validarNombre(nombre) == false) {
//				System.out
//						.println("ERROR, Introduzca un nombre con la primera en mayuscula");
//				nombre = teclado.nextLine();
//			}
			// pido el primer apellido
			System.out.println("Introduzca el primer apellido");
			apellido1 = teclado.nextLine();

			// valido el primer apellido
//			while (Util.validarNombre(apellido1) == false) {
//				System.out
//						.println("Error, Introduzca el primer apellido, con la primera en mayuscula");
//				apellido1 = teclado.nextLine();
//			}
			// pido el segundo apellido
			System.out.println("Introduzca el segundo apellido");
			apellido2 = teclado.nextLine();

			// valido el segundo apellido
//			while (Util.validarNombre(apellido2) == false) {
//				System.out
//						.println("Error, Introduzca el segundo apellido, con la primera en mayuscula");
//				apellido2 = teclado.nextLine();
//			}
			// valido la edad me da problemas recogiendo la edad como int
			flag = false;//inicializo la bandera
			
			// Esta repeticion es para comprobar la edad y que este definida ademas de comprobar si es un numero
			while (flag == false) {
				try {
					System.out.println("Introduzca la edad");
					edad = teclado.nextInt();
					while (edad < 1 || edad > 150) {
						System.out.println("Error, introduzca una edad real");
						edad = teclado.nextInt();
					}
					flag = true;
				} catch (Exception e) {
					System.out.println("Error, introduzca bien la edad");
					temp = teclado.nextLine();
				}
			}

			// valido el dni
			flag = false;

			while (flag == false) {
				try {
					System.out.println("Introduzca el dni sin la letra");
					dni = teclado.nextInt();
					while (dni < 9999999 || dni > 100000000) {
						System.out.println("Error, introduzca un dni correcto");
						dni = teclado.nextInt();
					}
					flag = true;
				} catch (Exception e) {
					System.out.println("Error, introduzca el dni sin letras");
					temp = teclado.nextLine();
				}
			}
			//guardo el dato en el array de la instancia la clase alumno
			a3[i] = new AlumnoP5(nombre, apellido1, apellido2, edad, dni,
					email);
			//syso quitado ya que genero un for al final para mostrar todo
			//System.out.println(a3[i].toString());
		}
		System.out.print('\n' + "Listado de alumnos introducidos" +'\n'+'\n');
		//solo es para sacar la informacion que tiene el array sobre los alumnos
		for(int i=0;i<numAlumno;i++)
		{
			System.out.println(a3[i].toString());
		}
	}
}
